-*-Help-*-

Readme AlphaTcl

                                     Readme version: 9.x
                                            created: 2005-05-13 14:52:11
                                        last update: 2019-12-10 07:17:53

	  	Abstract


The folder in which this file resides (referred to as "$HOME/Tcl/") contains
AlphaTcl, the library of Tcl scripts driving Alpha.

Most of Alpha's functionality is implemented in the scripting language Tcl,
and everybody can go in and inspect these files and see how things work.
Please have a look -- Tcl is one of the easiest scripting languages to read,
and generally the code in AlphaTcl is well documented.


	  	Table Of Contents


"# What is AlphaTcl?"
"# Modifying AlphaTcl"

"# Copyright"


	  	What is AlphaTcl?


AlphaTcl is the open-source collection of Tcl (Tool Command Language) code
driving the Alpha text editor engine.

AlphaTcl is not a text editor.  It is a collection of utilities and
infrastructure code which allows the above text editors to operate, and which
implements a lot of the advanced functionality of those editors.  All of the
above editors implement a visual editing environment (windows, menus,
dialogs, keyboard interaction, etc), and manage an application event loop,
which together with AlphaTcl make a text editor.

Most of functionality of these editors is implemented in its collection of
Tcl extension scripts that create the various modes, menus, and other
features.  All of these scripts use the building blocks provided by the core
commands of the binary applications to create the user interface.  Because
these script files are not embedded in the core of the application, it is much
easier to change various aspects of this interface, or to create additional
modes, menus, and features.  All of these script files are known collectively
as AlphaTcl, which are maintained in the AlphaTcl VCS (Version Control 
System) currently hosted at SourceForge. You can browse the repository at:
<https://sourceforge.net/p/alphacocoa/code/HEAD/tree/Current/Libraries/AlphaTcl/Tcl/>.



	  	Modifying AlphaTcl


Because the AlphaTcl library is both open source and exposed to the user, you
can also fix bugs yourself (if there are any) -- no need to wait for the next
release!  -- or you can tweak Alpha's behavior to fit your particular needs.
You can also add small snippets of code to a "prefs.tcl" file to have them
evaluated at startup; select the "Alpha > Preferences > Edit Prefs File"
command to open this file.

You can also modify the AlphaTcl files directly.  After activating the 
"Support Folders Tool" feature, you can open any file using 
the "Tools > Support Folders > Open AlphaTcl File" command, and then save it
in a "support folder" to modify it.  Most of your changes can be activated
immediately by selecting the "Tcl Menu > Evaluate" command -- there is no
need to recompile the program, although in some cases your AlphaTcl "package
indices" might need to be rebuilt.  See the "Support Folders Help" file for
more information.

However, Alpha _is_ a complex beast -- AlphaTcl and all its standard modes,
menus and packages contain some 170000 lines of code!!  If you come in here
for the first time, it may be difficult to find what you are looking for.  It
is highly recommended that you use the built-in facilities for browsing
AlphaTcl: 
the "Tcl Menu", the "Alpha Developer Menu", the "Support Folders Tool" and
the AlphaTcl filesets (select the "AlphaDev Menu > Rebuild AlphaTcl Filesets"
command to create them for the first time.)

You should also have a look at the developer help file "Extending Alpha",
accessible from the "Help > Developer Help" menu or at the following address:
<https://alphacocoa.sourceforge.io/ExtendingAlpha.html>

Don't hesitate to ask questions on the AlphaTcl developers mailing list:

<https://sourceforge.net/p/alphacocoa/mailman/>

Welcome to AlphaTcl!


	================================================================

	  	Copyright


This document has been placed in the public domain.  Unless otherwise noted,
the files within the $HOME folder follow the license and disclaimer found in
the "license.terms" file.

